#ifndef _FIG_UI_LEVELSELECT_H_
#define _FIG_UI_LEVELSELECT_H_

#include "fig_mogaui_state.h"
#include "fig_constants.h"

namespace ui
{
 class UISlideBox;
}

class GENGameState;

class FIGUILevelSelect: public FIGMOGAUIState
{
public:

		
	FIGUILevelSelect(camera::FbCamera*	pCamera);
	~FIGUILevelSelect();

	
	

	virtual bool		OnEnter();
    virtual	bool		Tick(float dt);
	virtual bool		Render();
	virtual void		KeyPressed(input::Keyboard::KEY* pKey);

	virtual void		MouseButtonReleased(input::Mouse::BUTTON_STATE* pKey, const math::Vec2& Pos);
	virtual void		MouseButtonDown(input::Mouse::BUTTON_STATE* pKey, const math::Vec2& Pos);


	void DELEGATE_CALL	OnButtonEasy(ui::UIWidget::WIDGET_EVENT Event, ui::UIWidget* pWidget);
	void DELEGATE_CALL	OnButtonNormal(ui::UIWidget::WIDGET_EVENT Event, ui::UIWidget* pWidget);
	void DELEGATE_CALL	OnButtonHard(ui::UIWidget::WIDGET_EVENT Event, ui::UIWidget* pWidget);

	void DELEGATE_CALL  OnButtonPlay(ui::UIWidget::WIDGET_EVENT Event, ui::UIWidget* pWidget);
    void DELEGATE_CALL  OnButtonFullVersion(ui::UIWidget::WIDGET_EVENT Event, ui::UIWidget* pWidget);

	void DELEGATE_CALL  OnSlideChange(ui::UIWidget::WIDGET_EVENT Event, ui::UIWidget* pWidget);

	
	virtual bool		OnUIKeyDownEvent(int KeyCode);
	
protected:

	void				RefreshByDifficulty();
	void				EnableDisableCheckBox(	bool Value, 
												const std::string& pCheckBoxName,
												const std::string& pTextWidgetName);

	
	void				RefreshUI();  
	void				HandleMOGADpad(int KeyCode);

	ui::UICheckBox*		m_pUIEasy;
	ui::UICheckBox*		m_pUINormal;
	ui::UICheckBox*		m_pUIHard;

	ui::UIWidget*		m_pUIBuyFullVersion;
	ui::UIWidget*		m_pUIPlayButton;

	math::Vec2			m_FirstButtonPos;
	math::Vec2			m_SecondButtonPos;
	
	ui::UISlideBox*		m_pSlideBox;
	ui::UIWidget*		m_pUI_HUDs[FIGConstants::LEVEL_LAST+1];
	float				m_Rotation_HUD;

	


};


#endif //_PVI_UI_WRAPPER_H_